petitcomputerfandomcom-20200214-history
Petit Computer Wiki:Chat/Logs/17 October 2013
12:35 'n' 12:35 Why Zzyex 12:35 Um,new note for all my friends 12:36 To those who wont get the note 12:36 This may be goodbye 12:36 It's not confirmed yet though 12:36 I'll be here for maybe tonight 12:36 Liar 12:36 You won't leae >:( 12:37 *leave 12:37 '-' 12:37 did you even read the note!? 12:37 I'm mayb be a liar,I hope I am 12:37 *maybe 12:37 but,if not 12:37 this may be goodbye 12:37 NOOOOO 12:38 Hum, why 12:38 Did 12:38 you 12:38 read 12:38 the 12:38 note? 12:38 I dn't want to say it 12:38 I just finished crying 12:38 No I didn't 12:39 Well,Just go read it 12:40 Don't laugh 12:41 I'm making it 12:42 Hm. 12:43 'n' 12:43 What's the matter? You still can play the 3DS 12:43 I know 12:43 but,I don't think after that,I'll be on for a while 12:45 . 12:45 . 12:45 . 12:48 Why won't you be on for a while? 12:48 Well,I'll be rather sad,and might want to be closer to my parent 12:48 so,I'll be inactive 12:49 Ok 12:49 don't worry,I don't think I'll leave forever 12:51 hi 12:51 YAY TWIN 12:51 Hai 12:51 I just have something new 12:51 ? 12:52 Herro 12:52 im gonna attempt to port a game 12:52 Ok what 12:52 Kakutou Ryouri Densetsu Bistro Recipe 12:53 *Facepalm* 12:53 ? 12:53 Another derpy non-popular game, huh? 12:53 yep 12:53 but it 12:54 is an amazing 12:54 game 12:54 its something i was working on with tobu a long time ago 12:54 but we decided it was too complex at the time 12:54 so we paused until we learned more 12:54 so im working on it again 12:55 My conquer game now uses GRP map generating. 12:55 o: 12:55 like a GRP pic? 12:55 or does it use a GRP to load stuff 12:57 There is 64 tiles for 1 map, and there's 1 map for each tile on the touch screen (32x24). I use a GRP screen to spawn 1 tile for each pixel. We can save it, and load it. 12:57 oooh 12:58 Smile.jpeg lols :D 12:58 YES just quit watching it.... i STILL HEAR IT 10:27 everything is flashing in colors... 10:27 2 HOURS OF THIS 01:06 Twin 01:07 gimme ur fc plz 01:07 what 01:07 im just going to shut down my computer and not touch it. ever. again. 01:07 what 01:07 what 01:07 V'-'V 01:08 Gimme your FC 01:08 so many notes :/ 01:08 Twin 01:08 wait 01:08 omg another one 01:08 Waiting. 01:08 same 01:09 random 01:09 random, 01:09 random? 01:09 darn it 01:09 Yeah, stop it. 01:09 jfc sparky so much spam 01:10 stop saying stop :[ 01:10 ? 01:10 >:[ 01:10 what the? 01:10 sparky i countered your animals 01:10 nice try 01:10 nuuuuuuu 01:10 >:( 01:10 last try 01:10 :( 01:10 dang it 01:10 you asked for it 01:10 how do u do the angry face 01:10 NOOOOO 01:10 hi calc 01:10 >:( 01:10 not cp twin! 01:11 no,twin the angry emoticon 01:11 STOP STOPPING DON'T STOPPING TO STOP SAYING TO NOT SAY STOP 01:11 not cute animals sparky! 01:11 yus they r 01:11 cute animals scare me 01:11 yay 01:11 wtF 14 NEW NOTES 01:11 ITS BEEN LIKE 5 MINUTES 01:12 ur gonna make botty mad 'n' 01:12 |:-(( 01:12 no,yoshi DX,the emoticon 01:12 omg stop sending me notes 01:12 omg,Imma go find it 01:12 Its not me! 01:13 wel...not all of it ^^ 01:13 Unibrow! :3 01:14 |:-) 01:14 (angry) 01:14 no,wait not that one,one worse 01:14 (drunk) 01:14 >:/ 01:14 XD 01:14 (mario) 01:15 omg 01:15 finally a working emoticon 01:15 XD 01:15 Ow mai gawd 01:15 C<(pacmen)(pacmen)(pacmen)(pacmen) 01:15 ??? 01:16 (redghost) 01:16 C<(redghost)(redghost)(redghost)(redghost)(redghost) 01:16 lol wut 01:16 C< (redghost) (redghost) (redghost) (redghost) 01:16 'w' 01:16 o/ 01:16 (wave) 01:17 (staff) 01:17 why so silent? 01:18 (kill) (rape) (punch) 01:18 Ok nvm. 01:18 e.o 01:18 there are young children here!(eyes twin) 01:18 o.o 01:18 jk XD 01:18 what 01:18 im not young 01:18 im 64564576547 01:18 woah 01:19 spark~bye? 01:19 oh yeah im 000000000000007.0000000000000000000000000000000000000000000000 01:19 omg..... 01:19 yoshi,just tell him 01:19 i have so many notes :/ 01:19 check ur newest 01:19 kk 01:20 GIMME YOUR FC (zombie) 01:21 omg 01:21 i read it 01:21 yoshi ill give you my fc later 01:25 :/ 01:27 Bored 01:27 m2 01:27 IM working on a secret ptc projrect though 01:28 I have many, many PTC secret games, don't worry. x) 01:28 cool 01:28 what secret games r u making? 01:30 Send me a PM. 01:33 I made a pretty good learnign program 01:33 Im also working on a code database 01:35 duk 01:35 ~did you know 01:35 that boot had more chrs in mind for boot bros? 01:35 also,is the pkmn xy glitch true? 01:36 about saves in luminouse city corrupting the files, 01:36 bye 02:46 Hey Randomous, are you on? 02:46 Yes 02:46 What's up? 02:47 Is there a way to update the image for my page on the Category page? 02:47 Of course! Do you want to post the new image on the wiki, or do you want to just send it to me? 02:47 It's still showing the old photo 02:47 oh, I mean 02:48 here: Category:Adventure 02:48 Ohhh 02:48 Yeah, that takes a while to update (it's quite stupid) 02:48 oh, so it'll fix itself after a while? 02:48 I think the wikia server periodically goes through and generates the thumbnails to save processing time 02:48 Yes, but it may take a while 02:49 okay, good to know 02:49 Here's a good example: Category:Games 02:50 If you sort by "Most Visited", you'll see that "The Witch and a Boy" doesn't have a picture (or at least it doesn't for me) 02:50 But then you click on it, and obviously it does lol 02:54 Oy Calc, if I become a bureaucrat, do you want to be an admin? You don't have to sit around staring at the wiki all day, but if you have time and you see a problem, you could have the power to fix it. 02:55 Hmm, I guess I could take some responsibility :P 02:55 Lol cool. I can't do anything yet, ut when I can, you'll know. 02:58 So, I mentioned earlier that I started another Steins;Gate 8-bit port 02:58 it's actually on the new TI-84 Plus C Silver Edition :D 02:58 Lol oh awesome! 02:59 How's that going? That's a mixed bag of compromises and enhancements, isn't it? 02:59 hmm, yeah 02:59 though actually 02:59 the main compromise is going to be the music 02:59 Lol that can't be all 02:59 everything else looks like it's going to be improved 02:59 I mean, just check out this draw speed: http://www.youtube.com/watch?v=FaOEMnYz_vY 03:00 Bam 03:00 Keep in mind this is on a 15MHz 8-bit processor, too xD 03:00 I go crazy with optimization 03:00 Well, that's what you get when go from... what is it? 200MHz interpreted to 15MHz raw lol 03:01 heh 03:01 oh yeah, I guess screen clearing is slower in this version 03:01 Jeez, stupid interpretation. I REALLY wish petit computer 3 would have a compiler. I mean... it's not crazy to have one, but I know they won't 03:01 since GCLS in practically instantaneous 03:01 is* 03:02 Yeah, some things are just nice in Petit Computer lol 03:02 and clearing the screen on the CSE takes at least 1/8 of a second (if not considerably more) 03:02 ...I thought there was an assembly call that cleared the screen? Or am I thinking of something else? Or is that it, and it just takes a while? 03:02 just because of the combination of the slow CPU and the large 16-bit color screen 03:03 That's 153600 bytes to output for a full frame 03:04 and at 14 clock cycles minimum per output, that's 2,150,400 cycles minimum 03:04 Mmmm hang on, I thought it dumped a buffer to the screen? 03:04 at 15MHz, that means at most 7-8 frames per second 03:05 the buffer is located in the screen controller 03:05 the black-and-white calculators used a buffer before outputting to the LCD usually, yeah 03:05 but the CSE doesn't even have enough RAM to hold an entire screen buffer for this :P 03:06 LOL that's true, I guess I should have thought about that. 03:06 but for this application, it doesn't really matter because I'm just drawing polygons, lines, and text 03:06 Goodness it's only 15K. What is that, 50 cents for some fast memory? 03:06 it has 128K total RAM 03:06 around 20K of which is usable for storing programs, variables, etc 03:07 They could have included at least a full screen buffer as an external video ram. 03:07 It could have been on the same chip... lol 03:07 they didn't even change the chip from the original TI-84+ in 2004 :| 03:07 Ugh, they're so... I don't even know 03:07 they just swapped out the LCD controller and the Flash chip 03:08 at least we have a 4MB Flash chip instead of 2MB now 03:08 which means ~3.5MB usable for storage instead of ~1.5MB 03:08 WOOOO! Jeez, I mean they're only charging a fortune, you'd think they could put some nicer stuff in there 03:09 http://www.ti.com/lsds/ti/dsp/embedded_processor.page 03:09 one really annoying thing is that the old ASIC (that they're still using) has a glitch in the LCD port access delay hardware 03:09 What is it? 03:09 which means you can't set the delay below 3 cycles or LCD access is ignored 03:09 so that's an extra 3 cycles for every single LCD access 03:10 Well, 3 cycles isn't all that bad. But that still sucks 03:10 which is why the minimum per byte is 14 cycles instead of 11 03:10 well either way, I don't really care for this game 03:11 ? 03:11 it's still a nice crisp 320x240 pixel screen 03:11 Which "game"? The metaphorical one, or a real one? 03:11 S;G 8-bit 03:11 I think I worded that weirdly 03:12 I don't care about the LCD hardware limitations in the case of this game 03:12 Oh, I see where the inflection would have gone if you were speaking 03:13 I'm actually going to try breaking some new ground in this game 03:13 I'm working on an audio output engine :D 03:13 ? New ground for you, or in general? 03:13 both 03:13 well, audio output has been done before, but not so much in an actual game 03:13 Lol really? 03:13 plus, I'm going for some fairly nice quality 03:14 3 square wave channels and 1 white noise, each with adjustable volume 03:14 which is pretty crazy, considering I have to do it all on the CPU 03:15 That... sounds hard 03:15 it's going to take the majority of the processing time, but it'll be worth it 03:16 pretty much all the "sound hardware" is just flipping the lines on the I/O link port 03:16 which means I technically have 1-bit samples :P 03:16 Lol that's just not right 03:17 well, with expert timing I can sort of simulate more states 03:17 using pulse-width modulation 03:18 which is how I'm managing multiple channels and volume control 03:18 I don't know how you have enough processing time for all that 03:19 heh, it is pretty tricky 03:19 I'm basing it on interrupts so it can run in the background 03:20 I have a couple of interrupts running at around 21KHz to read audio samples and flip the link port lines on and off with the right timing 03:20 Oh, there are interrupts? 03:20 then an interrupt running at about 85Hz to calculate the waveforms and fill the audio buffer 03:21 (and this also handles the timing for the game itself) 03:21 and soon it'll handle the actual music playback as well 03:21 right now I only have it playing back pitches defined at the start of the program 03:22 so I'll need to come up with some sort of music format and parser 03:23 So about these interrupts 03:23 How do they work? 03:23 I set up a custom interrupt vector (normally only the OS can use interrupts) 03:24 then I set up timers at certain frequencies 03:24 well, I guess one of them has a variable frequency depending on the sample currently being output 03:25 basically my 21KHz interrupt routine schedules the other one based on the current sample 03:25 ...I'm still confused lol. Is the interrupt handled in hardware? Or are you checking some sort of structure all the time? 03:25 it's hardware 03:25 the whole point of interrupts is so you don't have to check anything manually 03:26 Oh OK. I was thinking "this doesn't make any sense" lol 03:26 I know what interrupts are lol 03:28 though of course, the 85KHz interrupt routine has to re-enable interrupts while it's filling the audio buffer, otherwise the sound couldn't output from the other buffer at the same time :P 03:29 Bah, low level programming woes lol 03:29 I decided to go with a buffer because it's much more efficient to handle each channel separately than to keep track of them all at once on a per-sample basis 03:29 (which I have tried in the past) 03:29 it *did* sort of work, but I didn't get the nice volume control features 03:32 I suppose one sort of annoying thing about interrupt-based output is that some instructions take longer than others, and interrupts can only trigger between instructions 03:33 so the output isn't always as precise as I'd like 03:34 like, if I set all of the channel volumes to 0, I hear slight fizzing :P 03:34 Yeah, I can imagine that basing sound processing on interrupts is very... unpredictable 03:35 at least one nice thing is that this is one of the first projects where I actually wrote my code to play well with interrupts, lol 03:35 Lol 03:35 a lot of times I end up resorting to using stack hacks or the registers usually reserved for interrupts 03:36 Were you really that pressed for resources? 03:36 in some of my projects, yeah 03:36 like my gameboy emulator 03:37 of course, in other cases I go crazy with the optimization just because I can, like for my mode7 engine :P 03:37 got that puppy running at 30FPS 03:37 GOodness, I always forget that you're the one that made everything lol 03:37 unfortunately, my mode7 thing isn't released :( 03:38 I don't really make that many things, but I get really ambitious when I do, lol 03:38 Yeah, but you made all the stuff people cared about 03:39 I'd have to disagree there 03:40 you're not giving the rest of the community enough credit :P 03:40 Lol all right, they were good too 03:40 pretty much all I've got is a few emulators and a Chip's Challenge clone 03:41 oh yeah, I almost forgot, I made another improvement to the Steins;Gate 8-bit engine in this version 03:41 What's that? 03:41 an improvement over the original game, even 03:41 allowing more flexible commands :P 03:42 like, here's one of the more complicated examples: 03:42 {go |walk }d{own} stair{s}} 03:42 brackets are around optional things 03:42 | means either one works 03:42 Oh cool! 03:43 this means it'll accept things like 03:43 go downstairs 03:43 walk down the stairs 03:43 d :P 03:43 gotta keep those one-letter shortcuts, lol 03:44 unfortunately, I don't think I'll be adding this functionality to the Petit Computer version 03:44 Did you implement a nearly-complete regular expression recognizer, or did you just make it specifically for the game 03:44 specifically for the game 03:44 all it supports is 03:45 {} for optional, () for required, | for either 03:45 and # matches any decimal digit 03:45 It's still pretty awesome 03:45 And here I am making Village... ugh, I need to do something more impressive lol 03:46 hey, that's pretty cool :P 03:46 It's cool as a game (I assume), but it's not technically cool 03:47 The most technical thing in the whole game is probably the round-robin entity processing, which isn't technical at all lol 03:49 hmm, actually, I do wonder if I should consider this regex stuff for the PTC version... 03:49 Well, if it makes it easier, go for it 03:50 You know people are sometimes... not very good at this stuff lol 03:50 heh 03:50 I'm just worried about performance and/or the complexity of the routine 03:50 Mmm cater it to petit computer 03:50 right now I'm just using INSTR on each command set 03:51 Petit Computer has a crap-ton of memory, right? 03:51 Relatively speaking to TI-84, I mean 03:51 yeah 03:51 While the user is just sitting there, generate a list of all possible entries for the given screen 03:51 It's going to take them a while to read anyway 03:52 that could get exponentially large 03:52 I mean, how many things can you possibly say in one screen? 03:53 Hmm, but then you'd have to search through it all to find what you're looking for, and you'd only be able to store the strings in 4096 chunks 03:53 Ehh, I think the processing will be fine 03:54 I could possibly make clever use of INSTR, even 03:54 Make a state machine 03:54 Using instr 03:54 wait what :P 03:55 Yeah, you know 03:55 Create a generic template for a state machine, then create a specific one by mapping certain states 03:56 You can jump to states based on strings you generate at each screen 03:56 You can create a list of connections for each state 03:56 When you read a particular word, you'll go to a particular state 03:56 Set particular states as accepting (you can even have multiple values of acceptance), and if the input is done, check the state you're in 03:57 It'll use a lot of memory, but the processing will be low 03:58 ...Do you know what I mean? 03:58 Or is that just stupid lol 03:58 I think you lost me 03:58 OK, you know what a state machine is, I assume 03:59 somewhat? 03:59 http://en.wikipedia.org/wiki/Finite-state_machine 03:59 Basically there's a starting state, and based on a particular input, you go to another state 04:00 It's probably very similar to what you do already in the TI version, but more formalized 04:01 Anyway, what you would do is basically generate a mapping of words and states. For instance, you'd keep an array of strings and the corresponding state number that string will take you to 04:02 And you keep an array like this for each state 04:02 You break the input up into words, and those will be what the state transitions will be based on 04:03 Hmmm, let me see if I can't draw it 04:03 Oh, better yet, they have a table lol 04:03 On that page I sent you, there's a section on "State transition tables", that's what I mean 04:05 Do you have these rules defined for each page? These {} | () rules? 04:08 yes 04:08 Lol I'm sorry! I'm just being vague and unhelpful 04:08 who knows though, actually using that format might work out fine performance-wise 04:08 it only has to check when you enter something in, after all 04:09 I guess the main difference would be going character-by-character over the rules 04:10 I'm sorry, I was thinking of the "Theory of Computation" way... which may just be more complicated than a straight-forward approach 04:11 Basically you convert a regular expression into a finite-state machine by creating a table, then you traverse the table to determine if the input is good or not (and there can be multiple values of goodness) 04:13 Really, I'm sorry! 04:14 heh, no problem 04:15 I think I'll make that though. I want to see how hard it would be to make a regular expression system in Petit Computer 04:15 and I'll give my character-by-character method a go 04:16 one nice thing is that I'll be able to use a "stack" of strings :P 04:16 Lol well, I won't be making it for a while; I have too much other work to do 04:18 Can you explain the rules of your tthing again? 04:19 okay, so 04:19 parentheses () around an expression means that the expression inside must match 04:20 the entire expression has implicit parentheses around it 04:20 curly braces {} around an expression means that it can optionally match 04:21 and expressions separated by | mean that if any of the expressions match, then the whole expression (within parentheses or curly braces) matches 04:21 Why can't anything outside {} be explicitly matched? 04:22 That way you can remove the (). Or does that not work? 04:22 I'll give an example of parentheses 04:22 (ride|board){{ the} train} 04:22 the possible matches for this are 04:23 ride, board, ride train, board train, ride the train, board the train 04:23 Hmm, but why can't it be ride|board{{the} train} 04:23 Oh, I see examples where this wouldn't work. 04:24 that wouldn't accept ride train or ride the train 04:24 | is low priority 04:24 or rather 04:24 Well, I mean it's your language. It doesn't HAVE to be low priority lol 04:24 it completely separates the expressions on each side 04:24 But yeah, I see what you mean 04:26 basically how my parser works is 2013 10 17